/// 内容相关API
class ContentApi {
  /// 获取首页轮播图 - 使用模拟数据替代404接口
  static Future<List<Map<String, dynamic>>> getBanners() async {
    // 不再调用404错误的接口
    // final response = await HttpService.to.get('/content/banners');
    
    // 使用模拟数据
    await Future.delayed(const Duration(milliseconds: 300)); // 模拟网络延迟
    
    return [
      {
        'id': '1',
        'title': 'Flutter GetX 学习',
        'imageUrl': 'assets/images/index.png',
        'link': '/article/1',
      },
      {
        'id': '2',
        'title': 'Flutter 项目实战',
        'imageUrl': 'assets/images/title.png',
        'link': '/article/2',
      },
      {
        'id': '3',
        'title': '状态管理进阶',
        'imageUrl': 'assets/images/index.png',
        'link': '/article/3',
      },
    ];
  }
  
  /// 获取文章列表 - 使用模拟数据替代404接口
  static Future<Map<String, dynamic>> getArticles({
    required int page,
    required int pageSize,
    String? category,
    String? keyword,
  }) async {
    // 不再调用404错误的接口
    // return await HttpService.to.get(
    //   '/content/articles',
    //   params: {
    //     'page': page,
    //     'pageSize': pageSize,
    //     if (category != null) 'category': category,
    //     if (keyword != null) 'keyword': keyword,
    //   },
    // );
    
    // 使用模拟数据
    await Future.delayed(const Duration(milliseconds: 500)); // 模拟网络延迟
    
    final items = [
      {
        'id': '1',
        'title': 'Flutter GetX 学习',
        'summary': '5分钟前 | 1.2k 浏览',
        'imageUrl': 'assets/images/index.png',
        'content': 'GetX是一个轻量级的Flutter状态管理库，同时提供了路由管理和依赖注入功能。',
      },
      {
        'id': '2',
        'title': 'GetX 状态管理进阶',
        'summary': '1小时前 | 3.4k 浏览',
        'imageUrl': 'assets/images/index.png',
        'content': '深入理解GetX的响应式编程模型和状态管理方案。',
      },
      {
        'id': '3',
        'title': 'Flutter 项目实战',
        'summary': '3小时前 | 5.6k 浏览',
        'imageUrl': 'assets/images/index.png',
        'content': '从零开始构建一个完整的Flutter应用，包括UI设计、状态管理、网络请求等。',
      },
    ];
    
    // 模拟分页
    final int startIndex = (page - 1) * pageSize;
    final int endIndex = startIndex + pageSize < items.length ? startIndex + pageSize : items.length;
    
    final List<Map<String, dynamic>> pagedItems = startIndex < items.length 
        ? items.sublist(startIndex, endIndex) 
        : [];
        
    return {
      'items': pagedItems,
      'total': items.length,
      'page': page,
      'pageSize': pageSize,
      'totalPages': (items.length / pageSize).ceil(),
    };
  }
  
  /// 获取文章详情
  static Future<Map<String, dynamic>> getArticleDetail({
    required String id,
  }) async {
    // 使用模拟数据
    await Future.delayed(const Duration(milliseconds: 300));
    
    final articles = {
      '1': {
        'id': '1',
        'title': 'Flutter GetX 学习',
        'author': '开发者',
        'publishDate': '2023-06-15',
        'readCount': 1200,
        'content': 'GetX是一个轻量级的Flutter状态管理库，同时提供了路由管理和依赖注入功能。\n\n'
            '## 主要特点\n\n'
            '1. 性能：优化性能，最小化内存使用\n'
            '2. 生产力：简单易用的API\n'
            '3. 组织：完全解耦的业务逻辑',
        'imageUrl': 'assets/images/index.png',
      },
      '2': {
        'id': '2',
        'title': 'GetX 状态管理进阶',
        'author': '高级开发者',
        'publishDate': '2023-06-14',
        'readCount': 3400,
        'content': '深入理解GetX的响应式编程模型和状态管理方案。\n\n'
            '## 响应式编程\n\n'
            'GetX提供了简单而强大的方式来实现响应式编程。使用Obx和.obs可以轻松创建响应式应用。\n\n'
            '## 依赖注入\n\n'
            'Get.put()和Get.find()提供了简单的依赖注入机制。',
        'imageUrl': 'assets/images/title.png',
      },
      '3': {
        'id': '3',
        'title': 'Flutter 项目实战',
        'author': '项目经理',
        'publishDate': '2023-06-13',
        'readCount': 5600,
        'content': '从零开始构建一个完整的Flutter应用，包括UI设计、状态管理、网络请求等。\n\n'
            '## 项目结构\n\n'
            '合理的项目结构是构建可维护应用的基础。我们推荐按功能模块划分文件夹。\n\n'
            '## 状态管理\n\n'
            '选择适合你项目的状态管理方案，比如GetX、Provider或Bloc。\n\n'
            '## 网络层\n\n'
            '封装网络请求，处理错误和缓存策略。',
        'imageUrl': 'assets/images/index.png',
      },
    };
    
    return articles[id] ?? {'error': '文章不存在'};
  }
  
  /// 获取评论列表
  static Future<List<Map<String, dynamic>>> getComments({
    required String articleId,
    required int page,
    required int pageSize,
  }) async {
    // 使用模拟数据
    await Future.delayed(const Duration(milliseconds: 400));
    
    final comments = [
      {
        'id': '101',
        'articleId': articleId,
        'user': {'id': 'u1', 'name': '用户A', 'avatar': 'assets/images/index.png'},
        'content': '很有帮助的文章，学习了！',
        'createdAt': '2023-06-15 10:30',
      },
      {
        'id': '102',
        'articleId': articleId,
        'user': {'id': 'u2', 'name': '用户B', 'avatar': 'assets/images/title.png'},
        'content': '写得很清晰，对GetX有了更深的理解。',
        'createdAt': '2023-06-15 11:20',
      }
    ];
    
    return comments;
  }
  
  /// 发表评论
  static Future<Map<String, dynamic>> postComment({
    required String articleId,
    required String content,
    String? parentId,
  }) async {
    // 使用模拟数据
    await Future.delayed(const Duration(milliseconds: 500));
    
    return {
      'id': DateTime.now().millisecondsSinceEpoch.toString(),
      'articleId': articleId,
      'content': content,
      'user': {'id': 'currentUser', 'name': '我', 'avatar': 'assets/images/index.png'},
      'createdAt': DateTime.now().toString(),
      'parentId': parentId,
    };
  }
  
  /// 点赞文章
  static Future<void> likeArticle({
    required String articleId,
  }) async {
    // 模拟请求
    await Future.delayed(const Duration(milliseconds: 300));
  }
  
  /// 取消点赞
  static Future<void> unlikeArticle({
    required String articleId,
  }) async {
    // 模拟请求
    await Future.delayed(const Duration(milliseconds: 300));
  }
} 